package com.xinruke.hostels.systemmanage.service;

import com.xinruke.hostels.common.vo.ResultVO;
import com.xinruke.hostels.common.vo.query.RowsDataVO;
import com.xinruke.hostels.system.manage.interfaces.dto.*;

import java.util.List;

/**
 * @author yutaipu
 */
public interface RoomService {

    /**
     * 新增
     */
    ResultVO add(RoomAddDTO addQueryDTO);

    /**
     * 修改
     */
    ResultVO modify(RoomModifyDTO modifyQueryDTO);

    /**
     * 删除
     */
    ResultVO delete(RoomDelQueryDTO delQueryDTO);

    /**
     * 通过酒店id查询旗下所有房间
     */
    RowsDataVO<RoomQueryResultDTO> getRoomList(RoomQueryDTO roomQueryDTO);

    /**
     * 通过id查询详情
     */
    RoomDetailQueryResultDTO getDetail(RoomDetailQueryDTO detailQueryDTO);

    /**
     * 查询酒店下拥有的房间数量
     */
    Integer count(RoomCountQueryDTO countQueryDTO);

    /**
     * 批量新增房间
     */
    ResultVO<Integer> addBatch(RoomAddBatchDTO params);

    /**
     * 统计楼层下房型数量
     * @param loucengId 楼层id
     * @return 每种房型的具体数量
     */
    List<RoomCountByFangxingResultDTO> countByFangxing(Integer loucengId);

    /**
     * 获取未使用房间集合
     * @param roomUnusedQueryDTO
     * @return
     */
    RowsDataVO<RoomUnusedQueryResultDTO> getRoomUnusedList(RoomUnusedQueryDTO roomUnusedQueryDTO);
}
